
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data" >
    <input type="file" name="image" >
    <input type="submit" value="上传" name="sub">
    </form>
</body>
</html>
<?php
// $image=['.png','.jpg','.gif'];
// //  strrchr('1hgf.sdh.png','.');
// // var_dump($_FILES);

// if(!empty($_POST)){
//     $name= $_FILES['image']['name'];
//     //获取图片后缀
//     $key=strrchr($name,'.');
//     if(in_array($key,$image)){
//         if($_FILES['image']['error']==0){
//             $path=uniqid('user').rand(100,500).$_FILES['image']['name'];
//            move_uploaded_file($_FILES['image']['tmp_name'],'./upload/'.$path); 
//            echo "上传成功";
//         }else{
//             echo "上传不成功";
//         }
//     }else{
//         echo "文件格式错误";
//     }
// }
//通过`$_FIELS[]['type']`类型  比较`$_FIELS[]['type']`不能防止文件伪装。
// $allow=array('image/jpeg','image/png','image/gif');	
// if(!empty($_POST)){
//     $name= $_FILES['image']['type'];
//     if(in_array($name,$allow)){
//         if($_FILES['image']['error']==0){
//              $path=uniqid('user').rand(100,500).$_FILES['image']['name'];
//              move_uploaded_file($_FILES['image']['tmp_name'],'./upload/'.$path); 
//              echo "上传成功";
//         }else{
//               echo "上传不成功";
//             }
//         }else
//         echo "文件格式错误";
// }
// 方法三：php_fileinfo扩展（可以防止文件伪装）
if(!empty($_POST)){

$allow=array('image/jpeg','image/png','image/gif');
// 创建一个 fileinfo 资源
$info=finfo_open(FILEINFO_MIME_TYPE);
//将finfo资源和文件做比较
$min=finfo_file($info,$_FILES['image']['tmp_name']);//获取文件信息
//比较是否一样
if(in_array($min,$allow)){
    if($_FILES['image']['error']==0){
        $path=uniqid('user').rand(100,500).$_FILES['image']['name'];
        echo "上传成功";
        }else{
              echo "上传不成功";
            }
}else{
    echo "格式不对";
}
}
?>